import 'package:flutter/material.dart';
import 'package:flutter/physics.dart';
import 'package:flutter/services.dart';
import 'package:flutter_app/routes.dart';
import 'package:flutter_app/widget/refresher_footer.dart';
import 'package:pull_to_refresh/pull_to_refresh.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    SystemUiOverlayStyle systemUiOverlayStyle =
        SystemUiOverlayStyle(statusBarColor: Colors.transparent);
    SystemChrome.setSystemUIOverlayStyle(systemUiOverlayStyle);
    return RefreshConfiguration(
        headerBuilder: () => WaterDropHeader(),
        // 配置默认的标题指示符。如果每个页面都有相同的标题指示符，则需要设置此选项
        footerBuilder: () => RefresherFooter(),
        // 配置默认底部指示器
        headerTriggerDistance: 80.0,
        //标题触发刷新触发距离
        springDescription:
            SpringDescription(stiffness: 170, damping: 16, mass: 1.9),
        // 自定义弹回动画，道具意味着看到的扑动api
        maxOverScrollExtent: 100,
        //头的最大拖动范围。如果出现冲出视图区域的情况，请设置此属性
        maxUnderScrollExtent: 0,
        //最大底部越界距离(拖动时)
        enableScrollWhenRefreshCompleted: true,
        //此属性与PageView和TabBarView不兼容。如果需要TabBarView左右滑动，则需要将其设置为true。
        enableLoadingWhenFailed: true,
        //在加载失败的情况下，用户仍然可以通过手势上拉触发更多的加载。
        hideFooterWhenNotFull: false,
        // 不是全屏时不能使用上拉加载更多
        enableBallisticLoad: true,
        // 通过BallisticScrollActivity触发加载
        enableBallisticRefresh: true,
        //	是否可以通过惯性来触发刷新
        child: MaterialApp(
          title: "Flutter Demo",
          //   home: Tabs(),
          initialRoute: '/',
          onGenerateRoute: onGenerateRoute,
        ));
  }
}
